package com.work.model.builder;

import java.util.Date;

import com.work.model.Task;
import com.work.model.User;

/**
 * The Class TaskBuilder.
 *
 * @author "Mihai Roman"
 */
public class TaskBuilder extends Builder<Task> {

	/**
	 * With created by.
	 *
	 * @param createdBy the created by
	 * @return the task builder
	 */
	private TaskBuilder withCreatedBy(User createdBy) {
		build().setUserCreatedBy(createdBy);
		return this;
	}
	
	/**
	 * With creation date.
	 *
	 * @param creationDate the creation date
	 * @return the task builder
	 */
	private TaskBuilder withCreationDate(Date creationDate) {
		build().setCreationDate(creationDate);
		return this;
	}
	
	/**
	 * With end date.
	 *
	 * @param endDate the end date
	 * @return the task builder
	 */
	private TaskBuilder withEndDate(Date endDate) {
		build().setEndDate(endDate);
		return this;
	}
	
	/**
	 * With start date.
	 *
	 * @param startDate the start date
	 * @return the task builder
	 */
	private TaskBuilder withStartDate(Date startDate) {
		build().setStartDate(startDate);
		return this;
	}
	
	/**
	 * With status.
	 *
	 * @param status the status
	 * @return the task builder
	 */
	private TaskBuilder withStatus(int status) {
		build().setStatus(status);
		return this;
	}
	
	/**
	 * With updated by.
	 *
	 * @param updatedBy the updated by
	 * @return the task builder
	 */
	private TaskBuilder withUpdatedBy(User updatedBy) {
		build().setUserUpdatedBy(updatedBy);
		return this;
	}
	
	/**
	 * With updated date.
	 *
	 * @param updatedDate the updated date
	 * @return the task builder
	 */
	private TaskBuilder withUpdatedDate(Date updatedDate) {
		build().setUpdatedDate(updatedDate);
		return this;
	}
	
	
	
}
